package com.systop.busafter.task.mapper;

import com.systop.commer.pojo.Task;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface TaskMapper {
    /*
     * 修改task
     * task task
     * return int
     * csh
     * */
    @Update("update task set task_user_id = #{task_user_id},task_driver_id = #{task_driver_id},task_departure = #{task_departure} ," +
            "task_starting = #{task_starting},task_end = #{task_end},task_return = #{task_return} ," +
            "task_quantity = #{task_quantity},task_user_number = #{task_user_number},task_state1 = #{task_state1} ," +
            "task_deposit_state = #{task_deposit_state},task_price = #{task_price},task_driver_number = #{task_driver_number} ," +
            "task_state = #{task_state},task_order_number = #{task_order_number},task_time = #{task_time} ," +
            "task_remarks = #{task_remarks},task_s = #{task_s} where task_id = #{task_id}")
    int updatatask(Task task);


    //"time = #{time,jdbcType=TIMESTAMP} "  时间类型

    /*
     * 添加task 发布任务 (用户id，出发时间，起点，终点，返程时间，人数，电话号码，订单号，时间）
     * 预约：  (用户id，出发时间，起点，终点，返程时间，人数，电话号码，订单号，时间， 司机id） 修改押金状态
     * task task
     * return int
     * csh
     * */
    @Insert("insert into task(task_user_id,task_driver_id,task_departure,task_starting,task_end,task_return,task_quantity,task_user_number,task_state1,task_deposit_state," +
            "task_price,task_driver_number,task_state,task_order_number,task_time,task_remarks,task_s) " +
            "values (#{task_user_id},#{task_driver_id},#{task_departure},#{task_starting},#{task_end},#{task_return},#{task_quantity},#{task_user_number},#{task_state1}," +
            "#{task_deposit_state},#{task_price},#{task_driver_number},#{task_state},#{task_order_number},now(),#{task_remarks},#{task_s})")
    int inserttask(Task task);

    /*
     * 查看全部
     * 无
     * list
     * csh
     * */
    @Select("select * from task")
    List<Task> taskListall();

    /*
     * 用id查看task
     * task_id  int
     * list
     * csh
     * */
    @Select("select * from task where task_id = #{task_id}")
    List<Task> taskIdlist(int task_id);

    /*
     * 用id查看task
     * task_id  int
     * 实体类
     * csh
     * */
    @Select("select * from task where task_id = #{task_id}")
    Task TaskId(int task_id);

    /*
     * 用订单号查看task
     * task_order_number  int
     * list
     * csh
     * */
    @Select("select * from task where task_order_number = #{task_order_number}")
    List<Task> taskordernumberList(int task_order_number);

    /*
     * 删除task
     * task_id  int
     * return int
     * csh
     * */
    @Delete("delete from task where task_id=#{task_id}")
    int deletetask(int task_id);

    /*
     *1发布（设置时间戳，结束订单）
     * */

    /*
     *2用户是否同意司机的报价(本地存储订单的id，单号，价格，用户电话号码)
     *   id      1        0
     * 用户id  司机状态  结束状态,
     * task_user_id   task_state1  task_state
     * list
     * csh
     * */
    @Select("select * from task where task_user_id = #{task_user_id} and  task_state1 = #{task_state1} and task_state = #{task_state}")
    List<Task> Tobeconfirmed(Task task);

    /*
     *3  1) 通过id区修改状态押金状态，押金是司机报价的30%；
     *   2) 不同意 ，司机状态，价格手机号，司机id，都改成0
     * */

    /* *
     *4进行中
     * 任务转进行中
     *    id       1       1       0
     * 用户id  押金状态 司机状态  结束状态
     * task_user_id   task_deposit_state  task_state
     * */
    @Select("select * from task where task_user_id = #{task_user_id} and  task_deposit_state = #{task_deposit_state} and task_state1 = #{task_state1}  and task_state = #{task_state} ")
    List<Task> usertasktrueing(Task task);


    /*
     * 1司机查看全部的任务
     * task_state1  int
     * return int
     * csh
     * */
    @Select("select * from task where task_state1 = #{task_state1}")
    List<Task> taskdeiverall(int task_state1);

    /*
     * 2选择接单，通过id修改之前，先去通过id查下司机状态是否为0
     *
     * */

    /*3司机任务进行中
     *  id         1          1         0
     *通过司机id  押金状态   司机状态     结束状态
     *
     * */

    @Select("select * from task where task_driver_id = #{task_driver_id} and  task_deposit_state = #{task_deposit_state} and task_state1 = #{task_state1} and task_state = #{task_state}")
    List<Task> deivertasktrueing(Task task);

    /*
     *4 修改订单结束状态停止任务
     * */


}
